winform显示器适配(解决字体模糊,界面错乱,多屏适配)

您所在的位置:网站首页 winform 高分屏 winform显示器适配(解决字体模糊,界面错乱,多屏适配)

winform显示器适配(解决字体模糊,界面错乱,多屏适配)

2024-07-06 00:01:44| 来源: 网络整理| 查看: 265

最近做的一个软件,内部测试的时候有人把显示器放大了300%,导致界面空间重叠错乱了,之前在双屏幕运行的时候也有出现字体模糊的问题,就一起解决了。

步骤如下:

1. (我所有控件都包含到一个panel里面)将这个form设置缩放为取消缩放(或者像素缩放),并且子控件要么别设置,要么请一定将缩放模式和窗口的缩放模式相同:

this.AutoScaleMode = AutoScaleMode.None;

this.AutoScaleMode = AutoScaleMode.Dpi;

2  设置字的单位是像素,而不是Point:可以解决绝大多数字体模糊的问题

            this.TextTitle.Font = new System.Drawing.Font("Microsoft Sans Serif", 32.2F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Pixel, ((byte)(0)));  

以下是解释:

1. 不同显示器中,屏幕每一个像素长度和宽度不一样,如果设置了缩放,界面在不同屏幕上会有不同的效果。在winform中,我们设置高度宽度和定位的时候:

this.TextTitle.Location = new System.Drawing.Point(87, 21); this.TextTitle.Size = new System.Drawing.Size(109, 38);

测试:当我屏幕缩小放大的时候,控件的宽度视觉上不会发生变化。但是当我使用其他分辨率时,控件的高宽会明显变大。字体也是!(所以我觉得控件内部的单位也是像素)

System.Drawing.GraphicsUnit.Pixel

Specifies a device pixel as the unit of measure.(将设备像素指定为度量单位)

System.Drawing.GraphicsUnit.Point

Specifies a printer's point (1/72 inch) as the unit of measure.(指定打印机的点(1/72英寸)作为度量单位)

2 当我在大屏幕上测试完,缩放屏幕显示正常之后拿到笔记本屏幕上查看,出现了界面显示不完全的情况。这个时候我的缩放模式是这个:AutoScaleMode.Dip, 先看一下微软的文档:

The AutoScaleMode property specifies the current automatic scaling mode of this control. Scaling by Font is useful if you want to have a control or form stretch or shrink according to the size of the fonts in the operating system, and should be used when the absolute size of the control or form does not matter. Scaling by Dpi is useful when you want to size a control or form relative to the screen. For example, you may want to use dots per inch (DPI) scaling on a control displaying a chart or other graphic so that it always occupies a certain percentage of the screen.

谷歌翻译如下:

    所述AutoScaleMode属性指定此控制的当前自动缩放模式。如果希望控件或窗体根据操作系统中字体的大小拉伸或缩小,则按字体缩放很有用,当控件或窗体的绝对大小无关紧要时,应使用“按比例缩放” 。当您要相对于屏幕调整控件或窗体的大小时,按Dpi缩放很有用。例如,您可能希望在显示图表或其他图形的控件上使用每英寸点数(DPI)缩放,以使其始终占据屏幕的特定百分比。

我理解了一下,就是说:

Dpi

会根据屏幕缩放控件宽和高(不同的分辨率缩放)

Font

根据系统字体缩放控件的宽和高(缩放屏幕会修改字体大小)

None

禁用自动缩放

因为我界面的子panel(自定义用户控件Panel)有的用的缩放是Font,而窗口被我弄成了Dpi,这导致两者比例出现了偏差,窗口变小了,而面板没啥变化,反正两者各自缩放的比例不一样,甚至有些面板没有设置缩放,这就导致了界面有的控件都没显示出来。

 

关于Dpi缩放,我看到很多说修改App.manifest+App.config,我的项目中没有用这一条,用过后没发现有什么区别就注释了。

 

所以,控件窗口的缩放模式一定要一致。

缩放模式这一条的后续:

吃饭之前我用笔记本复现了这个现象,然下午我刚刚再次复测的时候怎么都复现不了了,但是为了避免出错,尽量全局一致,避免产生问题。



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭